What is ms?
The 'ms' npm package is a simple utility library for parsing and formatting various time formats. It allows you to easily convert between different time units such as milliseconds, seconds, minutes, hours, and days. It is commonly used to work with durations and timeouts in a human-readable format.
What are ms's main functionalities?
Convert from milliseconds to human-readable format
This feature allows you to convert a duration in milliseconds to a string that represents the duration in a more human-readable format, such as '1m' for one minute.
"const ms = require('ms');
console.log(ms(60000)); // '1m'"
Convert from human-readable format to milliseconds
This feature enables you to convert a human-readable time format into its equivalent number of milliseconds. For example, '2 days' would be converted to 172800000 milliseconds.
"const ms = require('ms');
console.log(ms('2 days')); // 172800000"
Round trip conversion
This demonstrates a round trip conversion where a human-readable duration is first converted to milliseconds and then back to a human-readable format.
"const ms = require('ms');
const duration = ms('1 hour');
console.log(ms(duration)); // '1h'"
Other packages similar to ms
moment
Moment.js is a comprehensive date handling library that can parse, validate, manipulate, and display dates and times. It offers more extensive features than 'ms', including localization, date arithmetic, and formatting, but it is also larger in size.
dayjs
Day.js is a minimalist library that parses, validates, manipulates, and displays dates and times. It is often considered a lightweight alternative to Moment.js with a similar API, and like 'ms', it is focused on simplicity and small footprint.
date-fns
Date-fns is a modular date utility library that provides the most comprehensive, yet simple and consistent toolset for manipulating JavaScript dates. It is function-based and allows for direct manipulation of date objects, offering more functionality than 'ms' but with a focus on being lightweight.
ms
Use this package to easily convert various time formats to milliseconds.
Examples
ms('2 days')
ms('1d')
ms('10h')
ms('2.5 hrs')
ms('2h')
ms('1m')
ms('5s')
ms('1y')
ms('100')
ms('-3 days')
ms('-1h')
ms('-200')
Convert from Milliseconds
ms(60000)
ms(2 * 60000)
ms(-3 * 60000)
ms(ms('10 hours'))
Time Format Written-Out
ms(60000, { long: true })
ms(2 * 60000, { long: true })
ms(-3 * 60000, { long: true })
ms(ms('10 hours'), { long: true })
Features
- Works both in Node.js and in the browser
- If a number is supplied to
ms
, a string with a unit is returned - If a string that contains the number is supplied, it returns it as a number (e.g.: it returns
100
for '100'
) - If you pass a string with a number and a valid unit, the number of equivalent milliseconds is returned
Related Packages
- ms.macro - Run
ms
as a macro at build-time.
Caught a Bug?
- Fork this repository to your own GitHub account and then clone it to your local device
- Link the package to the global module directory:
npm link
- Within the module you want to test your local development instance of ms, just link it to the dependencies:
npm link ms
. Instead of the default one from npm, Node.js will now use your clone of ms!
As always, you can run the tests using: npm test